package br.imr.dao.impl;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;

import br.imr.dao.ConsultarMembroDao;
import br.imr.model.Membro;
import br.imr.support.HibernateUtil;

/**
 * Classe responsavel pelos CRUDs no banco
 * 
 */
public class ConsultarMembroDaoImpl implements ConsultarMembroDao{

//	@PersistenceContext
//	private EntityManager em;
	
	
	

//	
//	/**
//	 * Metodo que consulta no BD membros ja cadastrados com o mesmo nome e endereco.
//	 */
//	public List<Membro> consultaCPFCadastrado(String nome, String endereco){
//		
//		Query query = em.createQuery("SELECT pess FROM Membro pess WHERE "
//				+ "pess.nome =:param AND pess.endereco =:param1 and dataExclusao IS NULL");
//		query.setParameter("param", nome);
//		query.setParameter("param1", endereco);
//
//		List<Membro> result = query.getResultList();
//
//		if (result.size() != 0) {
//			return null;
//		}
//		return result;
//	}
//	

	

	/**
	 * 
	 */
	public Membro getMembro(long id) {
		Session session = HibernateUtil.getSessionFactory().openSession();
		return (Membro) session.load(Membro.class, id);
	}
	
	

	/**
	 * 
	 */
	public List<Membro> list() {
		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction t = session.beginTransaction();
		List<Membro> lista = session.createQuery("from Membro").list();
		t.commit();
		return lista;
	}
	
	

//	/**
//	 * Metodo responsavel por excluir o cadastro do membro no banco
//	 */
//	public void remove(Membro membro) {
//		Session session = HibernateUtil.getSessionFactory().openSession();
//		Transaction t = session.beginTransaction();
//		session.delete(membro);
//		t.commit();
//	}
	
	

//	/**
//	 * Metodo responsavel por atualizar/editar o cadastro do membro no banco
//	 */
//	public void update(Membro membro) {
//		Session session = HibernateUtil.getSessionFactory().openSession();
//		Transaction t = session.beginTransaction();
//		session.update(membro);
//		t.commit();
//	}

}
